<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cwp\V20180228\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeSecurityEventsCnt response structure.
 *
 * @method SecurityEventInfo getMalware() Obtain Trojan file-related risk event
 * @method void setMalware(SecurityEventInfo $Malware) Set Trojan file-related risk event
 * @method SecurityEventInfo getHostLogin() Obtain Log-in audit-related risk event
 * @method void setHostLogin(SecurityEventInfo $HostLogin) Set Log-in audit-related risk event
 * @method SecurityEventInfo getBruteAttack() Obtain Password cracking-related risk event
 * @method void setBruteAttack(SecurityEventInfo $BruteAttack) Set Password cracking-related risk event
 * @method SecurityEventInfo getRiskDns() Obtain Malicious request-related risk event
 * @method void setRiskDns(SecurityEventInfo $RiskDns) Set Malicious request-related risk event
 * @method SecurityEventInfo getBash() Obtain High-risk command-related risk event
 * @method void setBash(SecurityEventInfo $Bash) Set High-risk command-related risk event
 * @method SecurityEventInfo getPrivilegeRules() Obtain Local privilege escalation-related risk event
 * @method void setPrivilegeRules(SecurityEventInfo $PrivilegeRules) Set Local privilege escalation-related risk event
 * @method SecurityEventInfo getReverseShell() Obtain Reverse Shell-related risk event
 * @method void setReverseShell(SecurityEventInfo $ReverseShell) Set Reverse Shell-related risk event
 * @method SecurityEventInfo getSysVul() Obtain Application vulnerability-related risk event
 * @method void setSysVul(SecurityEventInfo $SysVul) Set Application vulnerability-related risk event
 * @method SecurityEventInfo getWebVul() Obtain Web application vulnerability-related risk event
 * @method void setWebVul(SecurityEventInfo $WebVul) Set Web application vulnerability-related risk event
 * @method SecurityEventInfo getEmergencyVul() Obtain Emergency vulnerability-related risk event
 * @method void setEmergencyVul(SecurityEventInfo $EmergencyVul) Set Emergency vulnerability-related risk event
 * @method SecurityEventInfo getBaseLine() Obtain Security baseline-related risk event
 * @method void setBaseLine(SecurityEventInfo $BaseLine) Set Security baseline-related risk event
 * @method SecurityEventInfo getAttackLogs() Obtain Attack detection-related risk event
 * @method void setAttackLogs(SecurityEventInfo $AttackLogs) Set Attack detection-related risk event
 * @method integer getEffectMachineCount() Obtain Number of affected machines
 * @method void setEffectMachineCount(integer $EffectMachineCount) Set Number of affected machines
 * @method integer getEventsCount() Obtain Total of number of events
 * @method void setEventsCount(integer $EventsCount) Set Total of number of events
 * @method SecurityEventInfo getWindowVul() Obtain Total of Windows system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setWindowVul(SecurityEventInfo $WindowVul) Set Total of Windows system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method SecurityEventInfo getLinuxVul() Obtain Total of Linux system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method void setLinuxVul(SecurityEventInfo $LinuxVul) Set Total of Linux system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeSecurityEventsCntResponse extends AbstractModel
{
    /**
     * @var SecurityEventInfo Trojan file-related risk event
     */
    public $Malware;

    /**
     * @var SecurityEventInfo Log-in audit-related risk event
     */
    public $HostLogin;

    /**
     * @var SecurityEventInfo Password cracking-related risk event
     */
    public $BruteAttack;

    /**
     * @var SecurityEventInfo Malicious request-related risk event
     */
    public $RiskDns;

    /**
     * @var SecurityEventInfo High-risk command-related risk event
     */
    public $Bash;

    /**
     * @var SecurityEventInfo Local privilege escalation-related risk event
     */
    public $PrivilegeRules;

    /**
     * @var SecurityEventInfo Reverse Shell-related risk event
     */
    public $ReverseShell;

    /**
     * @var SecurityEventInfo Application vulnerability-related risk event
     */
    public $SysVul;

    /**
     * @var SecurityEventInfo Web application vulnerability-related risk event
     */
    public $WebVul;

    /**
     * @var SecurityEventInfo Emergency vulnerability-related risk event
     */
    public $EmergencyVul;

    /**
     * @var SecurityEventInfo Security baseline-related risk event
     */
    public $BaseLine;

    /**
     * @var SecurityEventInfo Attack detection-related risk event
     */
    public $AttackLogs;

    /**
     * @var integer Number of affected machines
     */
    public $EffectMachineCount;

    /**
     * @var integer Total of number of events
     */
    public $EventsCount;

    /**
     * @var SecurityEventInfo Total of Windows system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $WindowVul;

    /**
     * @var SecurityEventInfo Total of Linux system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
     */
    public $LinuxVul;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param SecurityEventInfo $Malware Trojan file-related risk event
     * @param SecurityEventInfo $HostLogin Log-in audit-related risk event
     * @param SecurityEventInfo $BruteAttack Password cracking-related risk event
     * @param SecurityEventInfo $RiskDns Malicious request-related risk event
     * @param SecurityEventInfo $Bash High-risk command-related risk event
     * @param SecurityEventInfo $PrivilegeRules Local privilege escalation-related risk event
     * @param SecurityEventInfo $ReverseShell Reverse Shell-related risk event
     * @param SecurityEventInfo $SysVul Application vulnerability-related risk event
     * @param SecurityEventInfo $WebVul Web application vulnerability-related risk event
     * @param SecurityEventInfo $EmergencyVul Emergency vulnerability-related risk event
     * @param SecurityEventInfo $BaseLine Security baseline-related risk event
     * @param SecurityEventInfo $AttackLogs Attack detection-related risk event
     * @param integer $EffectMachineCount Number of affected machines
     * @param integer $EventsCount Total of number of events
     * @param SecurityEventInfo $WindowVul Total of Windows system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
     * @param SecurityEventInfo $LinuxVul Total of Linux system vulnerability events
Note: This field may return null, indicating that no valid values can be obtained.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("Malware",$param) and $param["Malware"] !== null) {
            $this->Malware = new SecurityEventInfo();
            $this->Malware->deserialize($param["Malware"]);
        }

        if (array_key_exists("HostLogin",$param) and $param["HostLogin"] !== null) {
            $this->HostLogin = new SecurityEventInfo();
            $this->HostLogin->deserialize($param["HostLogin"]);
        }

        if (array_key_exists("BruteAttack",$param) and $param["BruteAttack"] !== null) {
            $this->BruteAttack = new SecurityEventInfo();
            $this->BruteAttack->deserialize($param["BruteAttack"]);
        }

        if (array_key_exists("RiskDns",$param) and $param["RiskDns"] !== null) {
            $this->RiskDns = new SecurityEventInfo();
            $this->RiskDns->deserialize($param["RiskDns"]);
        }

        if (array_key_exists("Bash",$param) and $param["Bash"] !== null) {
            $this->Bash = new SecurityEventInfo();
            $this->Bash->deserialize($param["Bash"]);
        }

        if (array_key_exists("PrivilegeRules",$param) and $param["PrivilegeRules"] !== null) {
            $this->PrivilegeRules = new SecurityEventInfo();
            $this->PrivilegeRules->deserialize($param["PrivilegeRules"]);
        }

        if (array_key_exists("ReverseShell",$param) and $param["ReverseShell"] !== null) {
            $this->ReverseShell = new SecurityEventInfo();
            $this->ReverseShell->deserialize($param["ReverseShell"]);
        }

        if (array_key_exists("SysVul",$param) and $param["SysVul"] !== null) {
            $this->SysVul = new SecurityEventInfo();
            $this->SysVul->deserialize($param["SysVul"]);
        }

        if (array_key_exists("WebVul",$param) and $param["WebVul"] !== null) {
            $this->WebVul = new SecurityEventInfo();
            $this->WebVul->deserialize($param["WebVul"]);
        }

        if (array_key_exists("EmergencyVul",$param) and $param["EmergencyVul"] !== null) {
            $this->EmergencyVul = new SecurityEventInfo();
            $this->EmergencyVul->deserialize($param["EmergencyVul"]);
        }

        if (array_key_exists("BaseLine",$param) and $param["BaseLine"] !== null) {
            $this->BaseLine = new SecurityEventInfo();
            $this->BaseLine->deserialize($param["BaseLine"]);
        }

        if (array_key_exists("AttackLogs",$param) and $param["AttackLogs"] !== null) {
            $this->AttackLogs = new SecurityEventInfo();
            $this->AttackLogs->deserialize($param["AttackLogs"]);
        }

        if (array_key_exists("EffectMachineCount",$param) and $param["EffectMachineCount"] !== null) {
            $this->EffectMachineCount = $param["EffectMachineCount"];
        }

        if (array_key_exists("EventsCount",$param) and $param["EventsCount"] !== null) {
            $this->EventsCount = $param["EventsCount"];
        }

        if (array_key_exists("WindowVul",$param) and $param["WindowVul"] !== null) {
            $this->WindowVul = new SecurityEventInfo();
            $this->WindowVul->deserialize($param["WindowVul"]);
        }

        if (array_key_exists("LinuxVul",$param) and $param["LinuxVul"] !== null) {
            $this->LinuxVul = new SecurityEventInfo();
            $this->LinuxVul->deserialize($param["LinuxVul"]);
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
